{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notes:\n",
    " * tuned fresh and trained on toi data, with toi examples in the validation set\n",
    " * adding some of the scalar features into the vetting primry input"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['/mnt/tess/astronet/checkpoints/vrevised_tuned_7_run_1/1/AstroCNNModelVetting_vrevised_tuned_20211108_141408',\n",
       " '/mnt/tess/astronet/checkpoints/vrevised_tuned_7_run_1/2/AstroCNNModelVetting_vrevised_tuned_20211108_142749',\n",
       " '/mnt/tess/astronet/checkpoints/vrevised_tuned_7_run_1/3/AstroCNNModelVetting_vrevised_tuned_20211108_144133',\n",
       " '/mnt/tess/astronet/checkpoints/vrevised_tuned_7_run_1/4/AstroCNNModelVetting_vrevised_tuned_20211108_145508',\n",
       " '/mnt/tess/astronet/checkpoints/vrevised_tuned_7_run_1/5/AstroCNNModelVetting_vrevised_tuned_20211108_150836',\n",
       " '/mnt/tess/astronet/checkpoints/vrevised_tuned_7_run_1/6/AstroCNNModelVetting_vrevised_tuned_20211108_152140',\n",
       " '/mnt/tess/astronet/checkpoints/vrevised_tuned_7_run_1/7/AstroCNNModelVetting_vrevised_tuned_20211108_153447',\n",
       " '/mnt/tess/astronet/checkpoints/vrevised_tuned_7_run_1/8/AstroCNNModelVetting_vrevised_tuned_20211108_154757',\n",
       " '/mnt/tess/astronet/checkpoints/vrevised_tuned_7_run_1/9/AstroCNNModelVetting_vrevised_tuned_20211108_160111',\n",
       " '/mnt/tess/astronet/checkpoints/vrevised_tuned_7_run_1/10/AstroCNNModelVetting_vrevised_tuned_20211108_161408']"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import os\n",
    "\n",
    "chkpt_root = '/mnt/tess/astronet/checkpoints/vrevised_tuned_7_run_1'\n",
    "data_files = '/mnt/tess/astronet/tfrecords-vetting-7-toi-val/*'\n",
    "tces_file = '/mnt/tess/astronet/tces-vetting-v5-toi-val.csv'\n",
    "\n",
    "nruns = 10\n",
    "\n",
    "def load_ensemble(chkpt_root, nruns):\n",
    "    checkpts = []\n",
    "    for i in range(nruns):\n",
    "        parent = os.path.join(chkpt_root, str(i + 1))\n",
    "        if not os.path.exists(parent):\n",
    "            break\n",
    "        all_dirs = os.listdir(parent)\n",
    "        if not all_dirs:\n",
    "            break\n",
    "        d, = all_dirs\n",
    "        checkpts.append(os.path.join(parent, d))\n",
    "    return checkpts\n",
    "\n",
    "paths = load_ensemble(chkpt_root, nruns)\n",
    "paths"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Running model 1\n",
      "354 records\n",
      "Running model 2\n",
      "354 records\n",
      "Running model 3\n",
      "354 records\n",
      "Running model 4\n",
      "354 records\n",
      "Running model 5\n",
      "354 records\n",
      "Running model 6\n",
      "354 records\n",
      "Running model 7\n",
      "354 records\n",
      "Running model 8\n",
      "354 records\n",
      "Running model 9\n",
      "354 records\n",
      "Running model 10\n",
      "354 records\n"
     ]
    }
   ],
   "source": [
    "import getpass\n",
    "import os\n",
    "from astronet import predict\n",
    "import tensorflow as tf\n",
    "\n",
    "\n",
    "def run_predictions(path):\n",
    "    predict.FLAGS = predict.parser.parse_args([\n",
    "      '--model_dir', path,\n",
    "      '--data_files', data_files,\n",
    "      '--output_file', '',\n",
    "    ])\n",
    "\n",
    "    return predict.predict()\n",
    "\n",
    "\n",
    "paths = load_ensemble(chkpt_root, nruns)\n",
    "ensemble_preds = []\n",
    "config = None\n",
    "for i, path in enumerate(paths):\n",
    "    print(f'Running model {i + 1}')\n",
    "    preds, config = run_predictions(path)\n",
    "    ensemble_preds.append(preds.set_index('tic_id'))\n",
    "    print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "labels = ['disp_p', 'disp_e', 'disp_n']\n",
    "\n",
    "col_p = labels.index('disp_p')\n",
    "# thresh = 0.1579816417694639\n",
    "thresh = 0.99"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "all_preds_table = ensemble_preds[0].copy()\n",
    "all_preds_table['model'] = 0\n",
    "\n",
    "for i in range(len(ensemble_preds[1:])):\n",
    "    tmp = ensemble_preds[i].copy()\n",
    "    tmp['model'] = i\n",
    "    all_preds_table = all_preds_table.append(tmp)\n",
    "    \n",
    "all_preds_table.to_csv('toi_ensemble_preds.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "agg_preds = {}\n",
    "\n",
    "mean_preds = preds.groupby(['tic_id']).mean()\n",
    "\n",
    "# for tic_id in mean_preds.index:\n",
    "#     agg_preds[tic_id] = []\n",
    "\n",
    "#     row = mean_preds[mean_preds.index == tic_id]\n",
    "#     pred_v = row.values[0]\n",
    "#     if len(row.values) > 1:\n",
    "#         print(f'Warning: duplicate predictions for {tic_id}')\n",
    "#     if pred_v[col_p] >= thresh:\n",
    "#         agg_preds[tic_id].append('disp_p')\n",
    "#     else:\n",
    "#         agg_preds[tic_id].append(mean_preds.columns[np.argmax(pred_v)])\n",
    "\n",
    "for preds in ensemble_preds:\n",
    "    for tic_id in mean_preds.index:\n",
    "        if tic_id not in agg_preds:\n",
    "            agg_preds[tic_id] = []\n",
    "\n",
    "        row = preds[preds.index == tic_id]\n",
    "        pred_v = row.values[0]\n",
    "        if len(row.values) > 1:\n",
    "            print(f'Warning: duplicate predictions for {tic_id}')\n",
    "        if pred_v[col_p] >= thresh:\n",
    "            agg_preds[tic_id].append('disp_p')\n",
    "        else:\n",
    "            agg_preds[tic_id].append(preds.columns[np.argmax(pred_v)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [],
   "source": [
    "final_preds = []\n",
    "for tic_id in list(agg_preds.keys()):\n",
    "    counts = {l: 0 for l in labels}\n",
    "    for e in agg_preds[tic_id]:\n",
    "        counts[e] += 1\n",
    "    maxcount = max(counts.values())\n",
    "    counts.update({\n",
    "        'tic_id': tic_id,\n",
    "        'maxcount': maxcount,\n",
    "    })\n",
    "    final_preds.append(counts)\n",
    "    \n",
    "final_preds = pd.DataFrame(final_preds).set_index('tic_id')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {},
   "outputs": [],
   "source": [
    "tce_table = pd.read_csv(tces_file, header=0).set_index('tic_id')\n",
    "tce_labels = tce_table[labels]\n",
    "\n",
    "pl = final_preds.join(tce_labels, on='tic_id', how='left', lsuffix='_p')\n",
    "\n",
    "pl.head()\n",
    "pd.set_option('display.max_columns', None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Recall: 1.0\n",
      "Precision: 0.8208092485549133\n"
     ]
    }
   ],
   "source": [
    "ppos = (pl['disp_p_p'] > 0)\n",
    "pos = (pl['disp_p'] > 0)\n",
    "\n",
    "pneg = (pl['disp_p_p'] == 0)\n",
    "neg = (pl['disp_p'] == 0)\n",
    "\n",
    "print('Recall:', len(pl[ppos & pos]) / len(pl[pos]))\n",
    "print('Precision:', len(pl[ppos & pos]) / len(pl[ppos]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in pl[pos & pneg][[]].join(tce_table, on='tic_id', how='left').index:\n",
    "    print(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "23826331\n",
      "24004619\n",
      "24491836\n",
      "30275619\n",
      "74934381\n",
      "98350979\n",
      "119774374\n",
      "137778682\n",
      "149854222\n",
      "255994336\n",
      "271903247\n",
      "276645751\n",
      "276936320\n",
      "278225267\n",
      "278866211\n",
      "280095254\n",
      "304729846\n",
      "307153959\n",
      "321828403\n",
      "344978642\n",
      "365494323\n",
      "372222115\n",
      "380783252\n",
      "384068226\n",
      "384744828\n",
      "388076435\n",
      "424876542\n",
      "457138169\n",
      "469782185\n",
      "1715469662\n",
      "1715469667\n"
     ]
    }
   ],
   "source": [
    "for i in pl[neg & ppos][[]].join(tce_table, on='tic_id', how='left').index:\n",
    "    print(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>disp_p</th>\n",
       "      <th>disp_e</th>\n",
       "      <th>disp_n</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>tic_id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.959509</td>\n",
       "      <td>0.040130</td>\n",
       "      <td>0.000361</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.941916</td>\n",
       "      <td>0.057532</td>\n",
       "      <td>0.000552</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.969774</td>\n",
       "      <td>0.029743</td>\n",
       "      <td>0.000483</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.913987</td>\n",
       "      <td>0.085164</td>\n",
       "      <td>0.000849</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.880513</td>\n",
       "      <td>0.118665</td>\n",
       "      <td>0.000822</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.944625</td>\n",
       "      <td>0.054511</td>\n",
       "      <td>0.000863</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.909234</td>\n",
       "      <td>0.089579</td>\n",
       "      <td>0.001187</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.935086</td>\n",
       "      <td>0.063931</td>\n",
       "      <td>0.000982</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.917071</td>\n",
       "      <td>0.081724</td>\n",
       "      <td>0.001205</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.918229</td>\n",
       "      <td>0.081255</td>\n",
       "      <td>0.000516</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           disp_p    disp_e    disp_n\n",
       "tic_id                               \n",
       "1129033  0.959509  0.040130  0.000361\n",
       "1129033  0.941916  0.057532  0.000552\n",
       "1129033  0.969774  0.029743  0.000483\n",
       "1129033  0.913987  0.085164  0.000849\n",
       "1129033  0.880513  0.118665  0.000822\n",
       "1129033  0.944625  0.054511  0.000863\n",
       "1129033  0.909234  0.089579  0.001187\n",
       "1129033  0.935086  0.063931  0.000982\n",
       "1129033  0.917071  0.081724  0.001205\n",
       "1129033  0.918229  0.081255  0.000516"
      ]
     },
     "execution_count": 139,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def compare(ensemble_preds, filter):\n",
    "    result = ensemble_preds[0][filter]\n",
    "    for preds in ensemble_preds[1:]:\n",
    "        result = result.append(preds[filter])\n",
    "    return result\n",
    "\n",
    "compare(ensemble_preds, preds.index == 1129033)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### PR curve"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "tics = set(ensemble_preds[0].index.values)\n",
    "\n",
    "tic_index = {v: i for i, v in enumerate(tics)}\n",
    "\n",
    "pred_ps = np.zeros([len(ensemble_preds), len(tic_index)])\n",
    "pred_es = np.zeros([len(ensemble_preds), len(tic_index)])\n",
    "pred_ns = np.zeros([len(ensemble_preds), len(tic_index)])\n",
    "for i, preds in enumerate(ensemble_preds):\n",
    "    for row in preds.iterrows():\n",
    "        tic, pred_p = row[0], row[1][col_p]\n",
    "        pred_ps[i][tic_index[tic]] = pred_p\n",
    "        pred_es[i][tic_index[tic]] = row[1][labels.index('disp_e')]\n",
    "        pred_ns[i][tic_index[tic]] = row[1][labels.index('disp_n')]\n",
    "\n",
    "lbl_ps = np.zeros([len(tic_index)], dtype=np.bool)\n",
    "bad_labels = []\n",
    "for row in tce_labels.iterrows():\n",
    "    tic, lbl_p = row[0], row[1]['disp_p']\n",
    "    if tic in tic_index:\n",
    "        lbl_ps[tic_index[tic]] = (lbl_p > 0)\n",
    "    else:\n",
    "        bad_labels.append(tic)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {},
   "outputs": [],
   "source": [
    "num_cond_pos = float(np.sum(lbl_ps))\n",
    "\n",
    "def pr_at_th(th):\n",
    "    pred_pos = np.any(pred_ps >= th, axis=0)\n",
    "    true_pos = pred_pos & lbl_ps\n",
    "    num_pred_pos = int(np.sum(pred_pos))\n",
    "    num_true_pos = int(np.sum(true_pos))\n",
    "    if num_pred_pos == 0:\n",
    "        return 1.0, 0.0\n",
    "    return float(num_true_pos) / float(num_pred_pos), float(num_true_pos) / float(num_cond_pos)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AUC: 0.9722463247802909, max R: 1.0, max P: 1.0\n",
      "100% recall at: 82%, threshold: 0.4834997615814759\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABD0AAAKuCAYAAACi1mevAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAewgAAHsIBbtB1PgAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdd5xcVfnH8c+ZtrMtu+m9khBIJ4RAIIQmBAjSpSkKAkpVQVGEn4SgIAqICihFmoIIItJDl15DSAiEkISQQnrfOrs7M/f3x8wmO5nZOuXu3Pt9v155ZWbP2XOfnX1ys/Psfe4xlmUhIiIiIiIiIuI0HrsDEBERERERERHJBhU9RERERERERMSRVPQQEREREREREUdS0UNEREREREREHElFDxERERERERFxJBU9RERERERERMSRVPQQEREREREREUdS0UNEREREREREHElFDxERERERERFxJBU9RERERERERMSRVPQQEREREREREUdS0UNEREREREREHElFDxERERERERFxJBU9RERERERERMSRVPQQEREREREREUdS0UNEREREREREHElFDxERERERERFxJBU9RERERERERMSRVPQQEREREREREUdS0UNEREREREREHMm1RQ9jTC9jzDHGmGuNMbONMZuMMVb8z/1ZOubpxpgXjTHrjDEhY8wKY8yDxpgp2TieiIiIiIiIiJsZy7LsjsEWxpiWvvAHLMs6K4PHKgQeA45uZkoUuNayrFmZOqaIiIiIiIiI27n2So9drARezOL697Kz4PE/4HhgMnAO8CWx78M1xpgfZDEGEREREREREVdx85Ues4APgQ8ty1pvjBkCfBUfztiVHsaYQ4FX4k+fBk6wLCvSZLwH8BEwCNgGDLMsa2smji0iIiIiIiLiZq690sOyrJmWZT1jWdb6LB/qZ/G/w8CFTQse8Tg2Ab+IPy0Hzs1yPCIiIiIiIiKu4NqiRy4YY0qBw+JPX7Ys6+tmpj4OVMQfn5D1wERERERERERcQEWP7NoHCMQfv97cJMuy6oH3Gj/HGOPPdmAiIiIiIiIiTuezOwCHG9Xk8aJW5i4CjiD2PRkBLGxt8VmzZhUAY4FewGYg0vJnsK61NUVERERERERa4AV6xh8vmDlzZp2dwbRGRY/sGtDkcXOtLY1WNXk8kDYUPYgVPD5s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\n",
      "text/plain": [
       "<Figure size 1200x740 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "\n",
    "ps, rs, ths = ([], [], [])\n",
    "th = np.max(pred_ps)\n",
    "while th >= 0.0:\n",
    "    p, r = pr_at_th(th)\n",
    "    if p > 0:\n",
    "        ps.append(p)\n",
    "        rs.append(r)\n",
    "    else:\n",
    "        ps.append(1.0)\n",
    "        rs.append(0.0)\n",
    "    ths.append(th)\n",
    "    th -= 0.0005\n",
    "    \n",
    "from sklearn import metrics\n",
    "\n",
    "print(f'AUC: {metrics.auc(rs, ps)}, max R: {max(rs)}, max P: {max(ps)}')\n",
    "    \n",
    "i = len(rs) - 1\n",
    "while rs[i] == 1.0:\n",
    "    i -= 1\n",
    "i += 1\n",
    "print(f'100% recall at: {int(ps[i] * 100)}%, threshold: {ths[i]}')\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(6, 3.7), dpi=200)\n",
    "\n",
    "ax.spines['top'].set_color('#808080')\n",
    "ax.spines['right'].set_color('#808080')\n",
    "ax.spines['left'].set_color('#808080')\n",
    "ax.spines['bottom'].set_color('#808080')\n",
    "ax.tick_params(direction='in', color='#808080')\n",
    "\n",
    "plt.grid(color='#c0c0c0', linestyle='--', linewidth=0.5)\n",
    "\n",
    "plt.ylabel('Precision', fontweight='bold')\n",
    "plt.xlabel('Recall', fontweight='bold')\n",
    "\n",
    "plt.xlim((0.0, 1.0))\n",
    "plt.ylim((0.0, 1.0))\n",
    "\n",
    "_ = plt.plot(rs, ps, marker='.')\n",
    "_ = plt.plot([0.0, 1.0], [1.0, 0.0])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
